Проблема компиляции с примером LitElement TS

Привет, полимерное сообщество:

У нового пользователя возникли небольшие проблемы с освещенным элементом с TS, и он не уверен, почему.

У меня TS настроен и работает нормально (скомпилированы другие примеры TS).

Установил ли npm элемент с подсветкой на странице "Приступая к работе".

https://lit-element.polymer-project.org/guide/start

Попытка использовать пример TS в разделе «Используйте декораторы LitElement TypeScript» и получить все виды неприятностей.

tsc my-element.ts приводит к полной ошибке:

my-element.ts:14:14 - error TS1219: Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option in your 'tsconfig' or 'jsconfig' to remove this warning.

14 export class MyElement extends LitElement {

my-element.ts:20:3 - error TS1219: Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option in your 'tsconfig' or 'jsconfig' to remove this warning.

20   foo = 'foo';

node_modules/lit-element/lib/updating-element.d.ts:102:38 - error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.

102 export declare type PropertyValues = Map<PropertyKey, unknown>;

node_modules/lit-html/lib/parts.d.ts:18:63 - error TS2304: Cannot find name 'Iterable'.

18 export declare const isIterable: (value: unknown) => value is Iterable<unknown>;

node_modules/lit-html/lib/render.d.ts:16:29 - error TS2583: Cannot find name 'WeakMap'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.

16 export declare const parts: WeakMap<Node, NodePart>;

node_modules/lit-html/lib/template-factory.d.ts:56:28 - error TS2583: Cannot find name 'WeakMap'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.

56     readonly stringsArray: WeakMap<TemplateStringsArray, Template>;

node_modules/lit-html/lib/template-factory.d.ts:57:25 - error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.

57     readonly keyString: Map<string, Template>;

node_modules/lit-html/lib/template-factory.d.ts:59:38 - error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.

59 export declare const templateCaches: Map<string, templateCache>;

Found 8 errors.

Я понятия не имею, как двигаться вперед, и действительно хочу работать с веб-компонентами и TS для нового проекта.

Мой tsconfig.json:

{
    "compilerOptions": {
      "target": "es6",
      "module": "es6"
    }
}

Я также пробовал без файла tsconfig. Те же результаты.

Пожалуйста, добрые люди помогите мне указать правильное направление. Спасибо. Дэйвид


person David Arsenault    schedule 17.03.2020    source источник


Ответы (2)


У меня была аналогичная проблема при использовании компилятора TypeScript версии 3.9.3, которую мне удалось решить, имея этот tsconfig.json:

{
  "compilerOptions": {
    "target": "es2015",
    "lib": ["es2015"],
    "module": "commonjs",
    "experimentalDecorators": true
  }
}
person RolKau    schedule 04.06.2020

Вам необходимо включить библиотеку dom в tsconfig.json:

{
    "compilerOptions": {
        ...,
        "lib": [
            ...,
            "dom"
        ]
    }
}
person theGecko    schedule 31.10.2020