основа: как дастать все из namespace доп:(сушествует ли алтернатива namespace?)
export namespace NNameSpace {
export type TA = number;
export type TB = string;
export type TE = boolean;
}
// type TNameSpaceTypes = ...NNameSpace; //результат TA | TB | TE (как то из NNameSpace достать все)
type TA = number;
type TB = string;
type TE = boolean;
// type TGroup = (TA, TB, TE); //создать некоторую груприровку (может есть алтернатива namespace?)
// type TABE2 = ...TGroup; //результат TA | TB | TE
// const d: TGroup.TA = 1;
// или
// const d: TGroup[TA] = 1;
Ответы (2 шт):
Автор решения: sailybra
→ Ссылка
К сожалению, такой возможности для неймспейсов не существует. Самое простое, что можно сделать, это определить ваши типы в объекте:
type MyTypes = {
A: string
B: number
C: boolean
}
declare const a: MyTypes["A"] // string
declare const b: MyTypes[keyof MyTypes] // string | number | boolean
Автор решения: Qwertiy
→ Ссылка
Тьфу, невнимательно вопрос прочитал...
Пространства имён для того и нужны, чтобы ограничивать область видимости того, что в них лежит. Обращаться к типам надо через точку.
export namespace NNameSpace {
export type TA = number;
export type TB = string;
export type TE = boolean;
}
let x: NNameSpace.TA
let y: NNameSpace.TB
let z: NNameSpace.TE
Ну или можно самому создать на них алиасы:
type TA = NNameSpace.TA
type TB = NNameSpace.TB
type TE = NNameSpace.TE
Способа импортировать неймспейс так, чтобы в текущем файле его типы оказались сами без префикса я не знаю.