Машинопись: используйте lib.core.es6.d.ts

Я использую typescript и пытаюсь использовать карту ES6, но получаю ошибки компиляции.

Я понял, что мне нужно сослаться на файл lib.core.es6.d.ts (Карта ES6 в Typescript), и я знаю, где это находится в моей файловой системе. Однако я не могу найти ничего, что указывало бы, что делать, чтобы использовать этот файл.

Прямо сейчас у меня есть только два файла в папке, которые я компилирую с помощью tsc --module amd treenode.ts treemerge.ts.

Как использовать типы es6 в одном из этих файлов? Если ответ «реструктурируйте свой проект так, как говорит сайт X», я буду ворчать, но, думаю, это нормально.


person Justin Blank    schedule 29.11.2015    source источник


Ответы (2)


Однако я не могу найти ничего, что указывало бы, что делать, чтобы использовать этот файл.

Вам нужно получить этот файл вручную из github И скомпилировать свой проект с --noLib передачей файла lib самостоятельно.

person basarat    schedule 29.11.2015
comment
Как это? { compileOnSave: true,compileOptions: { target: es5, noLib: true }, files: [app/*.ts, scripts/lib.es6.d.ts]} - person getsetbro; 04.07.2016

Целью сборки по умолчанию является ES5, что затем заставляет компилятор использовать значение по умолчанию lib.core.d.ts, поскольку он не может предположить, что типы ES6 будут доступны.

Если вы установите цель на ES6, компилятор автоматически нацелится на lib.core.es6.d.ts, и вам не придется делать это самостоятельно. Недостатком этого является то, что ваш скомпилированный вывод также будет ES6 совместимым с JavaScript, а не ES5. Например, это означает, что если вы используете какие-либо классы в своем коде TypeScript, компилятор выведет классы JavaScript в выходной файл.

Чтобы обойти это, вы можете либо вручную изменить ссылку на lib.core.es6.d.ts, как упоминает basarat, либо добавить что-то вроде babel. который автоматически преобразует код ES6 в совместимый код ES5.

В качестве примера я недавно переместил omnisharp-atom и omnisharp-client на целевой ES6 и использовал babel в качестве дополнительного транспилятора для создания ES5 исходных файлов.

https://github.com/OmniSharp/omnisharp-node-client/blob/master/tsconfig.json#L7-L9 https://github.com/OmniSharp/omnisharp-atom/blob/master/gulpfile.js#L45-L52 https://github.com/OmniSharp/omnisharp-node-client/blob/master/gulpfile.js#L54-L61

person David Driscoll    schedule 30.11.2015