小编qwe*_*rty的帖子

类型联合不检查多余的属性

让我们想象一个具有属性AB或的对象C,例如:

const temp = {
  A: 1,
  B: 2,
}
Run Code Online (Sandbox Code Playgroud)

或者

const temp = {
  C: 3,
}
Run Code Online (Sandbox Code Playgroud)

直觉上,我认为这种类型为:

type T =  {A: number, B: number} | {C: number};

const valid: T = {A: 1, B: 2};
const alsoValid: T = {C: 3};

// Should complain but it does not
const invalid: T  = {A: 1, B: 2, C: 3};
// Also should complain
const alsoInvalid: T = {A:1, C: 3};
Run Code Online (Sandbox Code Playgroud)

但是 TS 将此类类型视为 …

typescript

6
推荐指数
2
解决办法
164
查看次数

Typescript 无法识别回调的参数类型

我有以下函数及其回调类型:

type Callbacks = {
    onSuccess: (a: string) => void;
};

function t(event: string, ...args: [...any, Callbacks]) {

}
Run Code Online (Sandbox Code Playgroud)

它按预期工作,但一件事是,onSuccess函数有一个字符串参数,但 TS 无法识别它并说它有任何类型,但我明确将其设置为字符串。

t("eventName", "bobo", 123, {onSuccess: (asd) => {
    // "asd" is a string but TS says that it's an any
    // Parameter 'asd' implicitly has an 'any' type
}})
Run Code Online (Sandbox Code Playgroud)

游乐场链接

我应该改变什么才能让 TS 识别回调的参数类型,因为每次手动指定它们很乏味?

PS这是我的问题的简化示例

typescript

6
推荐指数
1
解决办法
296
查看次数

iOS 禁用“选择更多照片”提醒

我正在开发一个基于 React Native 的应用程序,我遇到了 iOS 照片权限有限的问题。

\n

我正在使用这个库 \xe2\x80\x93 https://github.com/react-native-cameraroll/react-native-cameraroll来获取照片,我有一个关于本机 ios 代码的问题。

\n

当我设置limited权限后,每次我在获取照片的屏幕上启动应用程序时,iOS 都会向我显示一条警报。

\n

我想禁用此警报并且永远不会显示它,尽管我找不到到底是什么触发了它

\n

这是我使用的函数的源代码 - > https://github.com/react-native-cameraroll/react-native-cameraroll/blob/1421c1d7e4a384e3a37c42a4907738ae4fe9e399/ios/RNCCameraRollManager.m#L244

\n

我相信这个函数会触发警报,因为当我注释掉它时警报不会显示,也许我错了,因为我没有任何 Objective-C 的经验

\n

警报

\n

PS 我尝试修改此函数,但看起来它与警报没有任何共同点;(

\n

objective-c ios react-native

5
推荐指数
1
解决办法
1736
查看次数

将总计数添加到分组 + 汇总数据

我正在为 MongoDb 查询苦苦挣扎。

我有一个查询,可以对某些字段进行分组和计数,例如:

field_name | count
___________________
 
field1     | 10
field2     | 20
field3     | 30
Run Code Online (Sandbox Code Playgroud)

而且我想在最后添加总计数,使其看起来像这样:

field_name | count
___________________
 
field1     | 10
field2     | 20
field3     | 30
total      | 60
Run Code Online (Sandbox Code Playgroud)

我了解如何在 SQL(UNION 或 ROLLUP)中实现它,尽管我找不到在 Mongo 中实现它的方法。

这是我的查询,以防万一:

db.subscriptions.aggregate([
{$match: {isExpired: false}},
{$group: {_id: '$productId', count: {$sum: 1}}}
])
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query

3
推荐指数
1
解决办法
48
查看次数