我正在尝试做一些简单的分页.为此,我正在尝试解析当前的URL,然后生成指向同一查询的链接,但是使用递增和递减的page参数.
我已尝试执行以下操作,但它生成相同的链接,没有新page参数.
var parts = url.parse(req.url, true);
parts.query['page'] = 25;
console.log("Link: ", url.format(parts));
Run Code Online (Sandbox Code Playgroud)
URL模块的文档似乎表明这format是我需要的,但我做错了.
我知道我可以手动迭代并构建字符串,但我希望有一个现有的方法.
我尝试在此处阅读如何从对象中删除属性:How do I remove a property from a JavaScript object?
它应该使用delete,我尝试这样
const eventData = {...myEvent}; // myEvent is an instance of my `Event` class
delete eventData.coordinate; // I have error in here
Run Code Online (Sandbox Code Playgroud)
但我有这样的错误
“删除”运算符的操作数必须是可选的。ts(2790)
然后我读到:Typescript 无法推断删除运算符和扩展运算符?
似乎可以通过使用更改我的 tsconfig.json 文件来消除该错误
{
"compilerOptions": {
...
"strictNullChecks": false,
}
...
}
Run Code Online (Sandbox Code Playgroud)
但如果我实现这个,我将不再进行空检查
那么如何从 Typescript 中的对象中删除属性而不使用“删除”运算符的操作数必须是可选错误?
在TypeScript中,2.2 ......
假设我有一个Person类型:
interface Person {
name: string;
hometown: string;
nickname: string;
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个返回Person的函数,但不需要昵称:
function makePerson(input: ???): Person {
return {...input, nickname: input.nickname || input.name};
}
Run Code Online (Sandbox Code Playgroud)
应该是什么类型的input?我正在寻找一种动态方式来指定一个类型,Person除了nickname可选(nickname?: string | undefined)之外.到目前为止,我发现的最接近的是:
type MakePersonInput = Partial<Person> & {
name: string;
hometown: string;
}
Run Code Online (Sandbox Code Playgroud)
但这并不是我想要的,因为我必须指定所需的所有类型而不是可选的类型.
我不明白为什么会发生这个错误。我正在创建一个表单来提交用户电子邮件
export const register = createAsyncThunk<
User,
RegisterProps,
{
rejectValue: ValidationErrors;
}
>("auth/registerStatus", async (credentials, { rejectWithValue }) => {
try {
// Don't POST blank email
if (!credentials["email"]) {
delete credentials["email"]; //editor marking in this line there is error.
}
const response = await api.post(API_REGISTER, credentials);
return response.data;
} catch (err) {
const error: AxiosError<ValidationErrors> = err;
if (!error.response) {
throw err;
}
return rejectWithValue(error.response.data);
}
});
Run Code Online (Sandbox Code Playgroud)
但我面临这个错误:
“删除”运算符的操作数必须是可选的。ts(2790)
我猜有一些逻辑错误,但我需要你的帮助来解决这个问题。
所以我正在以角度创建警报服务,但无法克服此错误。我知道可以通过在 ts.config 文件中禁用严格的空检查来抑制此错误。但不想采取这种方法尝试过!操作符使其成为可选,但它仍然不起作用,我不确定我是否将操作符放在正确的位置,我是角度新手,任何指导都会非常有帮助,谢谢
alerts: Alert[] = [];
this.alerts!.find(x => x === alert).fade = true;
Run Code Online (Sandbox Code Playgroud)
警报模型.ts
export class Alert {
public id!: string;
public type!: AlertType;
public message!: string;
public autoClose!: boolean;
public keepAfterRouteChange!: boolean;
public fade!: boolean;
constructor(init?:Partial<Alert>) {
Object.assign(this, init);
}
}
export enum AlertType {
Success,
Error,
Info,
Warning
}
Run Code Online (Sandbox Code Playgroud)