0

Насколько я собираюсь изучать машинописный документ, я столкнулся с проблемой. Прежде всего, я реализую это 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 Расширение?

Спасибо.

+0

у вас есть шлепнуть для вашего кода? –

+0

Уверенный, попробуйте этот [один] (https://plnkr.co/edit/AWMslva1YPLASlNz21aj) – everblack

ответ

-1

Игра с tsconfig.json, нацеливание ES5 так:

{ 
    "compilerOptions": { 
     "experimentalDecorators": true, 
     "module": "commonjs", 
     "target": "es5" 
    } 
    ... 
+0

Вы вскоре сдались и пришли к неправильному выводу. –

+0

Это было просто обходное решение, пожалуйста, зайдите на https://stackoverflow.com/questions/31455805/find-object-in-array-using-typescript/37394204#37394204 для получения дополнительной информации. Или ответ с вашим собственным решением был бы полезен. – everblack

Смежные вопросы