我有一些JavaScript代码,我正在尝试将其转换为Typescript。
据说,typescript是JavaScript的超集,但以下内容存在编译错误。假设我没有将ko库导入typescript,我将如何转换以下代码:
(function(ko, viewModels){
viewModels.MyViewModel = function(){
//stuff in here
}
}(ko, window.viewModels = window.viewModels || {}));
对于参考,这是我在TypeScript中的尝试
module viewModels {
export class PartDetailsViewModel {
public bar: string;
constructor (){
this.bar = ko.foo(); //<-- compiler error, "ko" does not exist in current scope
}
}
}
}
答案 0 :(得分:7)
查看TypeScript的“环境声明”,它允许您声明将在运行时提供的外部成员。因此,在您的示例中,添加以下内容将使编译器满意:
declare var ko;
顺便说一下,我还想在这篇文章中指导你:https://stackoverflow.com/a/12692174/806003
Sten提供了一个基本的淘汰界面,以便您可以在声明上指定一个类型,以便在其上进行静态输入。在评论中也发现了这一点:https://gist.github.com/3833509