你是不是也想用TypeScript编译描述类型?

时间:2013-03-22 15:11:08

标签: typescript

我确信这是一个愚蠢的问题,答案是,但我原本以为当我在现有框架中使用Definitely Typed描述符时,我只会将它们用于编译类型安全和编码时的智能感知查找。

https://github.com/borisyankov/DefinitelyTyped/tree/master/knockout(例如)

现在我没有使用Visual Studio,我只是使用Rubymine并在我的rake构建脚本中调用tsc.exe,但是我只是注意到当我转换源文件时它会保留类型KnockoutObservableString而我假设它会用ko.observable取代它。

那么我是否应该转换所有描述符并将其包含在网页上的源代码中?

1 个答案:

答案 0 :(得分:1)

简短回答,不。

答案很长:你需要编译定义文件。如果你看一个,你会发现它们只包含接口,因此你应该能够编译一个接口,这会产生一个空的JavaScript文件。

定义文件用于为现有JavaScript库添加打字支持,而无需将库本身转换为TypeScript。

在TypeScript中编写以下行:

var myObservableString: KnockoutObservableString;

将编译为

var myObservableString;

这些类型的要点是,在编译时,如果您犯了错误,将会通知您。例如:

myObservableString = ko.observable("Hello World"); // valid
myObservableString = ko.observable(false); // error, because you have specified the variable as an observable string

但是你仍然需要在TypeScript中实例化observable,你不能调用new KnockoutObservableString(string);

你永远不应该在编译的JavaScript中获得这些类型,所以你可能在这里遇到另一个问题。你指的是编译定义文件的输出吗?