Mam plik maszynopisu o nazwie Projects.ts, że chcę odwoływać się do zmiennej globalnej zadeklarowanej we wtyczce bootstrap o nazwie bootbox.js.
Chcę uzyskać dostęp do zmiennej wywoływanej bootboxz klas TypeScript.
Czy to możliwe?
Mam plik maszynopisu o nazwie Projects.ts, że chcę odwoływać się do zmiennej globalnej zadeklarowanej we wtyczce bootstrap o nazwie bootbox.js.
Chcę uzyskać dostęp do zmiennej wywoływanej bootboxz klas TypeScript.
Czy to możliwe?
Odpowiedzi:
Musisz poinformować kompilator, że został zadeklarowany:
declare var bootbox: any;
Jeśli masz lepsze informacje o typie, możesz je dodać zamiast any.
declareoświadczenie?
declare var myFunction: any;?
declare var myFunction: (input: string) => void;
Dla tych, którzy jeszcze tego nie wiedzieli, musielibyście umieścić declareoświadczenie poza classtym tak:
declare var Chart: any;
@Component({
selector: 'my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.scss']
})
export class MyComponent {
//you can use Chart now and compiler wont complain
private color = Chart.color;
}
W TypeScriptdeklarowanym słowie kluczowym używane jest miejsce, w którym chcesz zdefiniować zmienną, która mogła nie pochodzić zTypeScript pliku.
To tak, jakbyś powiedział kompilatorowi, że wiem, że ta zmienna będzie miała wartość w czasie wykonywania, więc nie rzucaj błędu kompilacji.
Jeśli chcesz mieć odniesienie do tej zmiennej w całym projekcie, utwórz d.tsplik, np globals.d.ts. Wypełnij go deklaracjami zmiennych globalnych, np .:
declare const BootBox: 'boot' | 'box';
Teraz możesz odwoływać się do niego w dowolnym miejscu w projekcie, tak po prostu:
const bootbox = BootBox;
Oto przykład .
Pobierz typy bootbox
Następnie dodaj do niego odniesienie w pliku .ts.