- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究 typescript 及其模块系统。
与此同时,我发现了 Triple-Slash Deirectives。
我只是认为它是 import/export 的另一种表达方式。但它不作为一个想法。在下面的代码中,我想在 test.ts 文件中使用命名空间 Myconsole。
// Myconsole.ts
namespace MyConsole {
export function log(msg: string) {
console.log(msg);
}
}
// test.ts
/// <reference path="Myconsole.ts" />
MyConsole.log("log"); // ReferenceError occurs here. but no redline
namespace MyConsole2 {
export function foo(msg: string) {
console.log(msg);
}
}
MyConsole2.foo("ging"); // but this one works.
但是当我运行 ts-node test.ts
时它吐出 Reference Error: Myconsole is not defined
让我更困惑的是遵守 tsc -d
命令是有效的。
// test.js
/// <reference path="Myconsole.ts" /> // Do .ts file available in .js ...?
var MyConsole2;
(function (MyConsole2) {
function foo(msg) {
console.log(msg);
}
MyConsole2.foo = foo;
})(MyConsole2 || (MyConsole2 = {}));
MyConsole.log("log"); // ReferenceError occurs here. but no redline
MyConsole2.foo("ging");
我很困惑...如何正确使用三斜杠指令?
我要设置额外的配置吗??请给我一个建议
最佳答案
三斜杠引用文件,from the documentation , 用作 Typescript 编译器指令。三斜杠引用指示编译器在编译过程中包含其他文件。但文件不会被导入,只有类型声明会被导入。
引用文件仅用于类型声明和类型声明,而不是定义。它们让编译器满意,因为类型声明会存在,但是一旦 node
尝试运行它就会失败并返回 ReferenceError
,因为它没有任何要指向的定义.
您可以看到 tsc
也失败了,就像 ts-node
一样。试一试:
首先用tsc test.ts
编译文件。输出 test.js
(编译后的 javascript 输出)将是这样的:
/// <reference path="Myconsole.ts" />
MyConsole.log("log"); // ReferenceError occurs here. but no redline
var MyConsole2;
(function (MyConsole2) {
function foo(msg) {
console.log(msg);
}
MyConsole2.foo = foo;
})(MyConsole2 || (MyConsole2 = {}));
MyConsole2.foo("ging"); // but this one works.
一旦您尝试使用 node test.js
运行它,您就会看到相同的错误:
> node test.js
/test.js:2
MyConsole.log("log"); // ReferenceError occurs here. but no redline
^
ReferenceError: MyConsole is not defined
at Object.<anonymous> (/test.js:2:1)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
...
看,已编译的 test.js
具有相同的三斜杠引用,但 node
本身无法识别它,因为它是特定于 Typescript 的。它只识别导入/需要包含定义。当它运行时,MyConsole
未在范围内的任何位置定义。
关于typescript - 如何在 ts-node 中使用三斜杠指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72759346/
我有一个右下角倾斜的元素,我必须在其上放置一个盒子阴影。有时倾斜的 Angular 被徽章覆盖 - 我的问题不适用,如果是这样的话: 这是信息框及其边 Angular 的 (s)css 部分(还有更多
是否可以在纯 html/css 中创建类似下面的内容? 我想做这个响应式和全 (100%) 宽度(最大左 Angular 100 像素,右边最小 50 像素,类似的东西)。 最佳答案 您可以通过转换(
如何在 fabricjs 文本中为文本提供渐变或斜 Angular 效果?? http://fabricjs.com/fabric-intro-part-2/ 这里给出了形状和所有示例,我将其与文本绑
我用过: http://apps.eky.hk/css-triangle-generator/ 为彼此对 Angular 放置的两个不等边三 Angular 形生成 css: 左下三 Angular
我是一名优秀的程序员,十分优秀!