interface IPrintConfig {
name: string;
copies: number;
}
function print(config: IPrintConfig = {}) {
console.log(`Print ${config.copies} on printer ${config.name}`);
}
print();
当什么都没有传递给print()
时,我将默认值设为{}
。但是print()
期望一个类型为IPrintConfig
的值,该值包含name
和copies
属性。我可以通过将这两个属性都设置为可选来解决此问题。是否有另一种方法可以解决此问题而不将其设置为可选
答案 0 :(得分:3)
使用#!/bin/bash
VAR1="$1"
openssl req -x509 -nodes -days $VAR1 -subj /C=AA/ST=AA/L=NONE/O=NONE/OU=NONE/CN=NONE/ -newkey rsa:2048 -keyout /tmp/server.key -out /tmp/server.crt -sha256 -set_serial 0
使接口值可选:
?
将参数设为可选参数,而不是预定义参数:
interface IPrintConfig {
name?: string;
copies?: number;
}
function print(config: IPrintConfig = {}) {
console.log(`Print ${config.copies} on printer ${config.name}`);
}
设置默认值:
function print(config?: IPrintConfig) {
if(config)
console.log(`Print ${config.copies} on printer ${config.name}`);
else
console.log(`No value passed`);
}
要求将参数传递给函数:
function print(config: IPrintConfig = {name: '', copies: -1}) {
console.log(`Print ${config.copies} on printer ${config.name}`);
}
答案 1 :(得分:0)
如果您将param设为可选参数,该怎么办?
interface IPrintConfig {
name: string;
copies: number;
}
function print(config?: IPrintConfig) {
config && console.log(`Print ${config.copies} on printer ${config.name}`);
}
print();