Насколько я собираюсь изучать машинописный документ, я столкнулся с проблемой. Прежде всего, я реализую это Array Extension в моем одиночном app.ts. Из-за нескольких причин я это делаю!Array.prototype.find Интерфейс Расширение вызывает проблемы при включении модуля
Код моего проекта становится все больше и больше. Я решил создать свой первый модуль . Я создал новый файл с именем 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>>();
}
...
}
Каждый раз, когда я использую функцию Array/метод IntelliSense кричит:
[ери] Свойство 'ххх' не существует на типе «Массив < < 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 Расширение?
Спасибо.
у вас есть шлепнуть для вашего кода? –
Уверенный, попробуйте этот [один] (https://plnkr.co/edit/AWMslva1YPLASlNz21aj) – everblack