我正在使用以下有效类型。
type P = 'FACEBOOK' | 'GOOGLE' | 'JWT';
type Unio<U extends string> = {
[K in U]: K
};
const PR: Unio<P> = {
FACEBOOK: 'facebook',
GOOGLE: 'google',
JWT: 'jwt',
};
const providers: Map<(keyof typeof PR), IOAuthProvider> = new Map([
[
'FACEBOOK' as P, {
clientID: process.env.FACEBOOK_CLIENT_ID,
clientSecret: process.env.FACEBOOK_CLIENT_SECRET,
},
],
]);
我的期望是,如果我删除as P
,则不会抛出任何类型错误,如下所示。我想删除它只是为了节省额外的打字。
const providers: Map<(keyof typeof PR), IOAuthProvider> = new Map([
[
'FACEBOOK', {
clientID: process.env.FACEBOOK_CLIENT_ID,
clientSecret: process.env.FACEBOOK_CLIENT_SECRET,
},
],
]);
但错误如下所示。
[ts]
Type 'Map<string, { clientID: string; clientSecret: string; }>' is not assignable to type 'Map<P, IOAuthProvider>'.
Type 'string' is not assignable to type 'P'.
答案 0 :(得分:0)
要使用您的示例,您可以使用Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Column = 4 Then
Select Case .Row
Case 20, 24, 25, 27, 28, 30 - 35, 37, 38, 40, 42 - 44, 54 - 56, 58, 59, 61 - 65
ActiveSheet.Protect Password:="Test", userinterfaceonly:=True
.Value2 = "Prepared By" & " " & Environ("Username")
.Value2 = .Value2 & " " & Format(Now, "yyyy-MM-dd hh:mm:ss")
.Locked = True
End Select
End If
End With
End Sub
地图,如下所示:
Android 2.3.3
注意:PR
- 所以我在两个区域使用了相同的套管。
答案 1 :(得分:0)
这不是回答你的问题,而是因为你问了枚举的例子。我在这里发帖,因为它不符合评论空间:
enum PR {
FACEBOOK = 'FACEBOOK',
GOOGLE = 'GOOGLE',
JWT = 'JWT',
};
const providers: Map<PR, any> = new Map([
[
PR.FACEBOOK, { },
],
]);