Typescript importera .js från CDN
I min .ts-fil vill jag referera till en .js-fil (hostad av en tredje part) och använda några av funktionerna i .js-filen. Hittills är det enda sättet jag har hittat för att göra detta att ändra .html-sidan och infoga en tagg från .ts-filen själv. Finns det något annat mer elegant sätt att göra detta förutom att ändra .html-sidan?
Svar #1
Det låter som att du försöker referera till några globala variabler som kommer att vara tillgängliga vid körning, när sidan laddas. Om du vill referera till dessa variabler, och du vet vad de kommer att kallas, kan du skapa en definitionsfil och referera till den i din .ts-fil. Din definitionsfil kan kallas ThirdParty.d.ts och se ut ungefär så här:
declare namespace ThirdParty {
interface User {
id string;
getID(): string;
}
}
export = ThirdParty;
Då kan du använda de där deklarerade variablerna, typerna, funktionerna osv från din TypeScript på detta sätt:
/// <reference path="ThirdParty.d.ts" />
var user = new ThirdParty.User("abc");
console.log(user.getID());
d.ts-filen talar i princip för TypeScript vilka typer som kommer att vara för din JS, eller otippade kod som du kommer att få åtkomst till.
Med det sagt, om jag laddade en tredjeparts JavaScript-fil från ett CDN, skulle jag vara försiktig. Eventuella ändringar i tredjepartsskriptet kan vara inkompatibla med definitionsfilen du har skrivit och kan bryta din kod.
Svar #2
Det är lite sent för detta, men det kan vara användbart för andra kodare.
Du kan skapa nästa modell i din TypeScript-klass:
USER = {
NAME: {
loadName:() => Object,
printName:()=> {},
}
}
Koden ovan representerar din modell i din JS-kod.
Anropet genomförs normalt i din TypeScript-klass
excuteName() {
this.USER.NAME.loadName();
}
