Доброе утро!
Я недавно обновил проект v8 до v9, и, похоже, он работает нормально. Однако у меня есть некоторые расширения, и компилятор выдает о них некоторые ошибки, чего не происходит в другом проекте, который я также недавно обновил.
Расширения являются базовыми c для обоих конструкторов. и прото. Они настроены нормально - одна и та же установка работает в нескольких проектах, в которых я их использую. Важно, что они отлично работают без каких-либо ошибок в другом обновленном проекте.
Однако, чтобы получить базовые c подтверждения использования для всего пути:
Добавление iface к typings.d.ts
, например
interface StringConstructor {
isNullOrEmpty(str: string): boolean;
}
interface String {
padStartWithChar(char: string, totalSize: number): string;
}
Реализация, например
export {};
String.isNullOrEmpty = function(str: string): boolean {
// ...
};
String.prototype.padStartWithChar = function(this: string, char: string, totalSize: number): string {
// ...
}
И импорт в main.ts
// ...
import './extensions/string-extensions';
// ...
Мои пути не изменились, все они указывают на все нужные файлы во всех нужных местах, которые я могу подумать, чтобы проверить их (src/typings.d.ts
находится в sr c, где я его положил, tsconfig.app.ts
включает его, как и прежде, et c. Et c.).
, что приводит к ошибкам сборки; Я получаю спам об ошибках для всех использований расширений, и сборка в итоге останавливается:
...
src/extensions/string-extensions.ts:9:8 - error TS2339: Property 'isNullOrEmpty' does not exist on type 'StringConstructor'.
9 String.isNullOrEmpty = function(str: string): boolean {
...
** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
и пытается просмотреть результаты в сообщении Cannot GET/
basi c. Тем не менее, он выполняет обычную повторную сборку при сохранении файлов, в которой он снова показывает все эти сообщения об ошибках, но в этот раз все равно завершает сборку и работает.
Есть ли у кого-нибудь указание указать мне, что я могу пропустили? Между двумя проектами я проверил наличие значительных изменений между angular.json
, tsconfig
s, main.ts
, et c. но пока что я выхожу пустым.
Спасибо.
Редактировать:
Отмена и попытка обновления снова, расширения ломаются на самом первом шаге обновления Руководство просто запустив небольшое обновление с ng update @angular/core@8 @angular/cli@8
.
Начиная с этого обновления, оно умирает. Пропустив этот шаг (в любом случае, я уже запускаю приложение v8) и пытаясь перейти прямо на 9, он, к сожалению, также убивает его.
Обновление:
Кажется, что ответ Ричарда избавился от всех запретить сообщения об ошибках расширения даты. Кажется, ему вообще не нравится существование интерфейса DateConstructor
, и, к тому же, он не особо радует использование moment
при попытке его использования.
Обновление правки:
Все расширения даты выглядят точно так же, как и другие расширения, единственное отличие состоит в том, что там есть строка import moment from 'moment'
. Удаление таких вещей, кажется, не имеет значения; это как Date
s - это зверь, отличный от String
s или Array
s ...