Ошибки "ожидаемый идентификатор" и ошибки "не присваивается номеру типа" при создании класса TypeScript - PullRequest
2 голосов
/ 04 мая 2020

Все еще немного новичок в кодировании. Я пытаюсь создать класс TypeScript в проекте Angular на основе более крупного файла JSON. Я не уверен, что ему не нравится то, как свойства были со строковыми литералами, но именно так они были объявлены в JSON, и я не уверен, есть ли лучший способ объявить их в TS. Когда я объявляю свойства, они в порядке ...

// this all seems ok
export class State {
    'FIPS Code': number;
    'Postal': string;
    'Area Name': string;
    'Less than a high school diploma, 1970': number;
... 
}

Когда я создаю конструктор, я получаю различные ошибки ...

// all parameter identifiers say 'identifier expected'
constructor('FIPS Code': number, 'Postal': string,
        'Area Name': string,
        'Less than a high school diploma, 1970': number,
        'High school diploma only, 1970': number,
...) {

    // Type '"FIPS Code"' is not assignable to type 'number'
    this['FIPS Code'] = 'FIPS Code';

    // the next two are ok, I assume because they're strings
    this['Postal'] = 'Postal';
    this['Area Name'] = 'Area Name';

    // everything else remaining says not assignable to type 'number'
    this['Less than a high school diploma, 1970'] = 'Less than a high school diploma, 1970';
...
}

1 Ответ

1 голос
/ 04 мая 2020

, пожалуйста, не смешивайте переменные, ключи и строки.

вы можете использовать строку в качестве ключа для доступа к данным внутри this или object. Но переменные (аргументы конструктора) должны соответствовать правилам их именования.

// all parameter identifiers say 'identifier expected'
constructor(FIPSCode: number, Postal: string,
        AreaName: string,
        Lessthanahighschooldiploma1970: number,
        Highschooldiplomaonly1970: number,
...) {

    // Type '"FIPS Code"' is not assignable to type 'number'
    this['FIPS Code'] = FIPSCode;

    // the next two are ok, I assume because they're strings
    this['Postal'] = Postal;
    this['Area Name'] = AreaName;

    // everything else remaining says not assignable to type 'number'
    this['Less than a high school diploma, 1970'] = Lessthanahighschooldiploma1970;
...
}

Здесь вы можете найти дополнительную информацию о том, как объявить переменную: https://www.typescriptlang.org/docs/handbook/variable-declarations.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...