我试着这样做:
var script:HTMLScriptElement = document.getElementsByName("script")[0];
alert(script.type);
但是它给了我一个错误
Cannot convert 'Node' to 'HTMLScriptElement': Type 'Node' is missing property 'defer' from type 'HTMLScriptElement'
(elementName: string) => NodeList
我不能访问脚本元素的'type'成员,除非我将其转换为正确的类型,但我不知道如何做到这一点。我查了文件和样本,但什么都没找到。
我还会推荐sitepen指南
https://www.sitepen.com/blog/2013/12/31/definitive-guide-to-typescript/(见下文)和
https://www.sitepen.com/blog/2014/08/22/advanced-typescript-concepts-classes-types/
TypeScript还允许你指定不同的返回类型
精确字符串作为函数的参数提供。例如,
TypeScript对DOM的createElement方法的环境声明
看起来是这样的:
createElement(tagName: 'a'): HTMLAnchorElement;
createElement(tagName: 'abbr'): HTMLElement;
createElement(tagName: 'address'): HTMLElement;
createElement(tagName: 'area'): HTMLAreaElement;
// ... etc.
createElement(tagName: string): HTMLElement;
这意味着,在TypeScript中,当你调用e.g.。
document.createElement('video'), TypeScript知道返回值是
一个HTMLVideoElement,将能够确保你是交互的
正确地使用DOM视频API,而不需要任何类型断言。