我定义了一个Enum来阐明API请求状态:
const enum Errcode{
Ok=0,
Error=1,
AccessDeny=201,
PostsNotFound=202,
TagNotFound=203,
//...
}
type SuccessErrcode =Errcode.Ok;
type NotFoundError =Errcode.PostsNotFound|Errcode.TagNotFound;
type ErrorErrcode=/* there */;
Run Code Online (Sandbox Code Playgroud)
如何定义ErrorErrcode除了Errcode.Ok之外的所有Errcode项(它应该包括NotFoundError的所有项)?
我无法定义更细粒度的类型,Union他们喜欢这样:
enum SuccessErrcode {
Ok =0,
}
enum NotFoundErrcode {
PostsNotFound=202,
TagNotFound=203,
}
enum ErrorErrcode {
Error=1,
}
type Errcode =SuccessErrcode|NotFoundError|SuccessErrcode;
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我将不能使用Errcode.xxx-使用的代码,我必须知道它在哪里被分配的(例如,从,Errcode.TagNotFound到NotFoundError.TagNotFound).并考虑到 - 当有TagErrcode和时NotFoundErrcode,TagNotFound=203将定义两次.
例如,我为这样的帖子定义了一个结构:
interface PostsInfo{
md_content :string;
id :number;
title :string;
description :string;
update_time :Date;
create_time :Date;
comment_count :number;
}
Run Code Online (Sandbox Code Playgroud)
然后,我需要一个没有属性的其他接口,即md_content.
interface PostsInfoWithoutContent{
// How define?
}
Run Code Online (Sandbox Code Playgroud)
它现在可以解决这个问题, make PostsInfoextend PostsInfoWithoutContent,但是,如果我喜欢那样,当我需要时我该怎么做PostsInfoWithoutComment(comment_count从 中删除PostsInfo)?
我想在 Docker 中为 FTP 创建一个具有随机密码的用户。Dockerfile 的部分如下所示:
RUN useradd web
RUN export ftppass=`cat /proc/sys/kernel/random/uuid`
RUN echo -e "$ftppass\n$ftppass" | passwd web
Run Code Online (Sandbox Code Playgroud)
但我在最后一行出现错误:
New password: Retype new password: Sorry, passwords do not match.
passwd: Authentication token manipulation error
passwd: password unchanged
Run Code Online (Sandbox Code Playgroud)
为什么即使我使用相同的变量密码也不匹配?
更新:
我发现输出echo -e "$ftppass\n$ftppass"是:
Step 9/15 : RUN echo -e "$ftppass\n$ftppass"
---> Running in ddd97df41d85
-e
Removing intermediate container ddd97df41d85
---> a64b606ea898
Step 10/15 : ...
Run Code Online (Sandbox Code Playgroud)
为什么它不适用于echo -e我的 $ftppass 在哪里?
已解决,Dockerfile新增部分为:
RUN useradd web
RUN cat …Run Code Online (Sandbox Code Playgroud)