Vad är skillnaden mellan att deklarera en modul i TypeScript med citattecken jämfört med utan?
Jag är en nybörjare på att skriva TypeScript-definitionfiler och skulle vilja veta skillnaden mellan följande två konstruktioner:
declare module activedirectory
och
declare module "activedirectory"
Av någon anledning tillåter den förstnämnda mig att använda vilka klasser som helst inom en av mina Angular-tjänster utan någon form av importdeklaration (t.ex. import activedirectory=require('activedirectory')). När jag deklarerar den sistnämnda i min kod förstör den referenser till mina interna moduler, till exempel:
module myModule.Services {
'use strict';
export class MyService implements myModule.Interfaces.IMyService {
.....
Kan inte längre hitta namnområdet "myModule.Interfaces".
Svar #1
TypeScript-teamet insåg förvirringen, och därför kallas moduler utan citattecken nu för namnrymder.
Framöver kommer interna moduler att kallas 'namespace'. Vi valde att använda denna term på grund av närheten mellan hur denna form fungerar och namespaces i andra språk [...] http://blogs.msdn.com/b/typescript/archive/2015/07/20/announcing-typescript-1-5.aspx
De citerade modulerna är ES6-moduler och måste importeras med en import-sats som import 'activedirectory';