【发布时间】:2016-09-17 23:48:55
【问题描述】:
就我学习 Typescript 而言,我遇到了一个问题。 首先,我在我的单个 app.ts 中实现了这个Array Extension。由于多种原因,我正在这样做!
我的项目代码越来越大,我决定创建我的第一个模块。我创建了一个名为 whatever.ts 的新文件:
export class Foo{...}
我将这个模块导入到我的 app.ts 中,如下所示:
import * as whatever from './whatever'
let Foo = new whatever.Foo();
但在这一点上,我之前的 Array Extension 看起来给我的旧代码带来了一些麻烦。
class KeyValuePair<T, U> {
public key: T;
public value: U;
constructor(key: T, value: U) {
this.key = key;
this.value = value;
}
}
class Dictionnary<T, U> {
private _keyValuePairs: Array<KeyValuePair<T, U>>;
constructor() {
this._keyValuePairs = new Array<KeyValuePair<T, U>>();
}
...
}
每次我使用数组函数/方法时,intellisense 都会尖叫:
[ts] 类型“数组>”上不存在属性“xxx”。
任何
每次我尝试使用时都会发生这种情况:
this._keyValuePairs.splice(...
this._keyValuePairs.indexOf(...
this._keyValuePairs.length
for (let kvp of this._keyValuePairs) {...
如果您需要示例,请尝试使用此方法:(也有其他广告在此方法上)
public keys(): Array<T> {
let keys = new Array<T>();
for (let kvp of this._keyValuePairs) {
keys.push(kvp.key);
}
return keys;
}
如果我不导入模块,一切都好。我的第一个模块失败了吗?这个问题已知吗? (:我没有在上面找到任何东西。)或者他们是用多个文件对我的应用程序进行编码的好方法,或者我只是卡住了,只要我使用这个数组,就必须在一个文件中编码。 prototype.find 扩展?
谢谢。
【问题讨论】:
-
你的代码有 Plunk 吗?
-
当然,试试这个one
标签: typescript intellisense visual-studio-code typescript1.8