我创建了一个TypeScript
我的服务结果界面。现在我想为里面的两个函数定义一个基本功能。问题是我收到错误:
“Support”类型的值不存在属性“ServiceResult”。
I use WebStorm
为发展(VS2012
让我紧张,因为大型项目冻结 - 等待更好的集成:P)。
我是这样做的:
module Support {
export interface ServiceResult extends Object {
Error?: ServiceError;
Check?(): void;
GetErrorMessage?(): string;
}
}
Support.ServiceResult.prototype.Check = () => {
// (...)
};
Support.ServiceResult.prototype.GetErrorMessage = () => {
// (...)
};
我也尝试将我的原型移动到模块中,但仍然出现同样的错误......(当然我删除了Support.
字首)。
您无法对接口进行原型设计,因为编译后的 JavaScript 根本不会发出与接口相关的任何内容。该接口的存在纯粹是为了编译时使用。看看这个:
这个打字稿:
interface IFoo {
getName();
}
class Foo implements IFoo {
getName() {
alert('foo!');
}
}
编译为以下 JavaScript:
var Foo = (function () {
function Foo() { }
Foo.prototype.getName = function () {
alert('foo!');
};
return Foo;
})();
没有IFoo
在结果中,根本没有 - 这就是你收到该错误的原因。通常,您不会对接口进行原型设计,而是对实现接口的类进行原型设计。
您甚至不必自己编写原型,只需将接口实现为类就足够了,TypeScript 编译器将为您添加原型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)