свойства были не статическими, а соответствовали свойствам определенного объекта? Например:
let user = {
name: 'John',
login: 'JohnDoe',
email: 'john.doe@example.com'
}
interface Container {
user: any // как объявить тип, чтобы это был объект со свойствами, аналогичными user?
}
Нужно это по большей части для тайпхинтинга в IDE, чтобы при использовании пользовательских объектов с произвольными полями мы могли получить выпадающий список ключей этого объекта. Я догадываюсь, что это невозможно и противоречит принципам ts, но мало ли.
const user = { name: 'John', login: 'asdf_asdf_asdf' } type UserType = typeof user; interface IUserContainer { user: UserType } class User implements IUserContainer { user: UserType constructor () { this.user = user; } }; playground Luke
typeof user?
Похоже это оно, но это работает только если const user объявлен в контексте текущей области видимости. А можем ли мы абстрагироваться от объявления user? Скажем, не указывать явно typeof user, а некий typeof UserWithSomeProps? И соответственно, где-то в другом месте будет const user: UserWithSomeProps = {name: "", login: "" ...}. Но вот как в этом случае будет выглядеть интерфейс UserWithSomeProps?
Задефайнить тип юзера Той переменной задавать тип юзер Вуаля инверсия зависимостей
эээ, а как это вообще должно работать? Хочу тип как у этой переменной, но переменную вам не покажу (потому что у вас документов нет)
Generic, не?
Обсуждают сегодня