Używam komponentu React o nazwie shiitake od npm do mojego projektu, w którym używam TypeScript. Ta biblioteka nie ma deklaracji TypeScript, więc pomyślałem, że ją napiszę. Plik deklaracja wygląda jak poniżej (może nie być kompletna, ale nie martw się o tym zbyt dużo):Niestandardowe pliki deklaracji TypeScript dla nienumerowanych modułów npm
import * as React from 'react';
declare module 'shiitake' {
export interface ShiitakeProps {
lines: number;
}
export default class Shiitake extends React.Component<ShiitakeProps, any> {
}
}
Włożyłem to wewnątrz ./typings/shiitake.d.ts
pliku i na Kodeksie VS widzę poniższy błąd:
[ts] Invalid module name in augmentation. Module 'shiitake' resolves to an untyped module at 'd:/dev/foo/foobar.foo.Client.Web/node_modules/shiitake/dist/index.js', which cannot be augmented.
po stronie konsumpcji, ja wciąż się ten sam błąd, nawet jeśli z powyższą deklaracją (ponieważ mam noImplicitAny
przełącznik kompilator włączony):
/// <reference path="../../../../typings/shiitake.d.ts" />
import * as React from 'react';
import Shiitake from 'shiitake';
[ts] Could not find a declaration file for module 'shiitake'. 'd:/dev/foo/foobar.foo.Client.Web/node_modules/shiitake/dist/index.js' implicitly has an 'any' type.
Podstawową przyczyną gromadzenia plików deklaracji dla tego typu modułów jest @types/
way i działa dobrze. Jednak nie mogę uzyskać niestandardowych typów pisowni. jakieś pomysły?
Wow, wielkie dzięki za to. Oszczędzasz czas – smac89
To była wielka pomoc, dziękuję. Dla mnie problemem było to, że instrukcja 'import' znajdowała się poza modułem, a nie wewnątrz. – dbellizzi
Chciałbym móc to powtórzyć dziesięć razy. Spędziłem w tym czasie wiele godzin. Naprawdę chciałbym, żeby dokumenty TypeScript były lepsze. –