Как правильно описать тип данных для объекта в typescript?

564
11 сентября 2017, 06:44

Есть такой объект:

[
    {
        login: {
            min: 6
        }
    }
    ,
    {
        password: {
            min: 6,
            max: 10
        }
    }
]

Так он передается в метод: validateSize([{login: {min: 6}}, {password: {min: 6}}])

Как должно выглядеть описание типа?

Answer 1

Насколько я понимаю, интересует тип массива длины два, с элементами разных типов. Это называется tuple, и объявляется так:

let object: [firstType, secondType] = ...

Конкретно для вашего случая:

let object: [Login, Password] = [
    {
        login: {
            min: 6
        }
    },
    {
        password: {
            min: 6,
            max: 10
        }
    }
];
class LoginRestriction {
    min: number;
}
class Login {
    login: LoginRestriction;
}
class PasswordRestriction {
    min: number;
    max: number;
}
class Password {
    password: PasswordRestriction;
}
function f(object: [Login, Password]) {
    let login: Login = object[0];
    let password: Password = object[1];
    console.log(login.login.min)
    console.log(password.password.min)
}
READ ALSO
Проблема с записью в массив

Проблема с записью в массив

В логере все отображается, а в массив не записывается

252
Что за ошибка в npm debug(angular 2)?

Что за ошибка в npm debug(angular 2)?

Только начал изучать angular 2 делал всё как в уроке, это моё первое hello world приложение, вся структура проекта писалась с нуля, в конце делаю npm start и выдаёт...

433
Чтение бит в javaScript

Чтение бит в javaScript

Доброго времени сутокРешил переписать один алгоритм с JS на C#, а так в JS не шарю, то столкнулся с некоторыми проблемами

535
Не грузится popup.js в popup.html в расширении Chrome

Не грузится popup.js в popup.html в расширении Chrome

Загружаю файл popupjs в файл popup

310