javascript - Deklarera var i typescript från extern fil ger ReferenceError: ... är inte definierad
Jag har följande TypeScript-fil-->
module someModule {
declare var servicePort: string;
export class someClass{
constructor(){
servicePort = servicePort || ""; //ERROR= 'ReferenceError: servicePort is not defined'
}
testade detta också på en av funktionerna inne i "someClass" -->
someFunction = () => {
if (servicePort && servicePort != '') { //ERROR - also servicePort is not defined
//do something with servicePort
}
}
Om jag definierar var servicePort någonstans i mina js/html-filer så fungerar det, men inte alla mina sidor innehåller servicePort-var, och jag vill säkert få värdet från den variabeln utan undantag. Vad gör jag fel?
Svar #1
Att en variabel ibland är definierad och ibland inte är ett ganska stort kodluktproblem, men om du verkligen vill göra detta, behöver du skydda åtkomst till den variabeln med typeof:
if (typeof servicePort !== "undefined") {
// safe to use servicePort here
}
Observera att du inte kommer att kunna se skillnaden mellan en saknad variabel och en med värdet undefined, men så är livet.
