Что касается изучения машинописного текста, я столкнулся с проблемой. Прежде всего, я реализую это расширение массива в своем единственном app.ts. Я делаю это по нескольким причинам!
Код моего проекта становится все больше и больше, и я решил создать свой первый модуль. Я создал новый файл с именем whatever.ts:
export class Foo{...}
и я импортирую этот модуль в свой app.ts следующим образом:
import * as whatever from './whatever'
let Foo = new whatever.Foo();
Но на данный момент мое предыдущее расширение массива выглядит немного проблемы с моим старым кодом.
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>>();
}
...
}
Каждый раз, когда я использую функцию/метод Array, intellisense кричит:
[ts] Свойство «xxx» не существует для типа «Array‹ KeyValuePair‹ T, U ››».
Любые
Это происходит каждый раз, когда я пытаюсь использовать:
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 Расширение ?
Спасибо.