Я новичок в использовании машинописного текста. Я хочу знать, как отправить несколько параметров в машинописном смысле. Для примера в JS мы бы:
const createOrUpdate = async (data = {name, email, password}) =>{
const params = {
TableName: Table,
Item: data
}
try{
await db.put(params).promise()
return { success: true }
} catch(error){
return { success: false}
}
}
Я не уверен, как data = {name, email, password}
можно сделать в машинописном тексте. Ценю это, если кто-то может провести меня через.
TS — это JS с аннотациями типов. Ваши идиомы JS должны работать в TS. Рассмотрим эту функцию (без асинхронности):
const user = "defaultName";
const email = "defaultEmail";
const password = "defaultPassword";
const createOrUpdate = (data = {user, email, password}) =>{
console.info(data);
}
createOrUpdate();
createOrUpdate({user: "u1", email: "e1", password: "p1"});
data
user
, email
, password
со значениями, взятыми из переменных с такими именами.Этот код полностью действителен в TS.
Кроме того, компилятор TS может определить тип функции, взглянув на предоставленный аргумент по умолчанию:
const createOrUpdate: (data?: {
user: string;
email: string;
password: string;
}) => void
Вы также можете указать для параметра явный тип:
interface UserParams {
user: string;
email: string;
password: string;
}
const createOrUpdate2 = (data:UserParams = {user, email, password}) =>{
console.info(data);
}
createOrUpdate2();
createOrUpdate2({user: "u1", email: "e1", password: "p1"});
ПРИМЕЧАНИЕ. Я также изменил name
на user
. Хотя это нормально как локальная переменная, name
— это глобальная переменная из libdom. См. Почему моя переменная показывает, что она устарела?