小编Pat*_*gan的帖子

为什么要在打字稿中的联合类型文字中添加前面的竖线(|)?

我编写了以下 TypeScript 代码:

type FeatureFlagConfig = { enabled: false }
  | {
      enabled: true;
      key: string;
    };
Run Code Online (Sandbox Code Playgroud)

然后,在 VSCode 中保存后,它会自动格式化为:

type FeatureFlagConfig =
  | { enabled: false }
  | {
      enabled: true;
      key: string;
    };
Run Code Online (Sandbox Code Playgroud)

这里有趣的是联合文字的语法| a | b而不是a | b. 添加首字母|(竖线)字符看起来像是损坏的代码,但显然是 linter 所喜欢的。为什么?这是否专门用于格式化目的,以便每个工会成员各占一行?另外,这个TS有效吗?TS 规范没有提到它: https: //github.com/Microsoft/TypeScript/blob/master/doc/spec.md#386-union-type-literals

typescript

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

如何从打字稿中的模块重新导出所有导入?

我正在将 JS 代码库迁移到 TS。在 JS 中,我们有一些 index.js 文件,它们重新导出模块中的所有导入:

export * as users from './users';

这个等效的 TS 是多少?

typescript

4
推荐指数
2
解决办法
2734
查看次数

从名称空间重新导出Typescript枚举?

我在模块“ some-lib”中有一个枚举定义。我想从模块的命名空间中重新导出它,如下所示:

import { PaymentType } from 'some-lib';

namespace Payout {
    export enum PaymentType = PaymentType;
}
Run Code Online (Sandbox Code Playgroud)

我没有运气。我想这样做是为了给枚举别名并将其放入另一个名称空间,以避免与其他具有相同名称的类型发生冲突。我不想在我的代码中定义枚举的重复副本,而不必维护所有枚举值。

目前Typescript是否有任何支持方式?

typescript typescript2.0

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

如何使用谷歌 API 获取服务帐户的身份验证令牌?

我有一个 Wordpress 站点(运行 PHP),需要使用 google-api 向访问者显示自己的分析数据。我想用 Javascript 创建图表,所以我需要从 PHP 代码中获取一个身份验证令牌,然后将其传递给 Javascript 代码。我不知道如何获取身份验证令牌。

到目前为止,我使用我的服务帐户使用了与此类似的代码:https : //github.com/google/google-api-php-client/blob/master/examples/service-account.php

我的代码:

$client = new Google_Client();
$client->setAuthConfig($credentialsFilePath);

$client->addScope('https://www.googleapis.com/auth/analytics.readonly');
$client->setApplicationName("GoogleAnalytics");


$analytics = new Google_Service_Analytics($client);
$ga = $analytics->data_ga;

$start = date('Y-m-d', strtotime('-7 days'));
$end   = date('Y-m-d');

$views = $ga->get('ga:'.$myAnalyticsId,
                $start,
                $end,
                'ga:pageviews,ga:sessions,ga:newUsers',
                array(
                    'dimensions' => 'ga:date',
                    'sort' => 'ga:date'
                ));
Run Code Online (Sandbox Code Playgroud)

这一切正常,我能够连接到 Google_Service_Analytics 并获取分析数据。但是,我无法弄清楚如何使用我的凭据获取服务访问令牌,我可以将其交给 Javascript 代码,以便我可以从 Javascript 使用 Google Analytics API。

这不起作用:

$token = $client->getAccessToken();
Run Code Online (Sandbox Code Playgroud)

令牌最终为空。我需要做什么来获取令牌?

php google-api oauth-2.0

2
推荐指数
1
解决办法
2349
查看次数

为调用子工作流程的工作流程编写测试时出现临时错误:“无法找到工作流程类型”

我正在使用 golang SDK 进行时间处理。我正在为我的工作流程编写测试LoadCreateWorkflow。它有一个活动并且还启动一个子工作流程LoadLifecycleWorkflow

在为其编写单元测试时,我模拟了活动和子工作流程LoadLifecycleWorkflow

    s.env.OnActivity(CreateLoadActivity, mock.Anything, mock.Anything).Return(nil, nil).Once()
    s.env.OnWorkflow(LoadLifecycleWorkflow, mock.Anything).Return(nil)
    s.env.ExecuteWorkflow(LoadCreateWorkflow, wfParams)
Run Code Online (Sandbox Code Playgroud)

(这里 s.env 是单元测试的TestWorkflowEnvironment):

import (
    ...
    "go.temporal.io/sdk/testsuite"
)

type UnitTestSuite struct {
    suite.Suite
    testsuite.WorkflowTestSuite

    env *testsuite.TestWorkflowEnvironment
}

func (s *UnitTestSuite) SetupTest() {
    s.env = s.NewTestWorkflowEnvironment()
}
Run Code Online (Sandbox Code Playgroud)

运行我的测试时出现错误:panic: unable to find workflow type: LoadLifecycleWorkflow. Supported types: [LoadCreateWorkflow]

在我的工作流程模块的 init 函数中,我注册了它和子工作流程:

worker.RegisterWorkflow(LoadCreateWorkflow)
worker.RegisterActivity(CreateLoadActivity)
worker.RegisterWorkflow(LoadLifecycleWorkflow)
Run Code Online (Sandbox Code Playgroud)

为什么我会收到“我的未注册”错误LoadLifecycleWorkflow?如何解决?

testing go temporal-workflow

2
推荐指数
1
解决办法
3738
查看次数

AWS SQS队列是否彼此隔离?

假设我有两个单独的服务,A和B,SQS队列都订阅了SNS主题"topic-foo".然后我将消息m1发布到SNS主题"topic-foo".

如果服务A(sqs-A)拥有的SQS队列看到消息m1并对其进行处理(即将其弹出队列并处理消息以使其不再在sqs-A上),我是否仍然可以保证单独的SQS服务B拥有的队列(sqs-B)将始终能够查看和处理消息m1?(换句话说,AWS SNS发布是否保证多次传递到SQS队列并隔离单独的SQS队列处理?)

amazon-sqs amazon-web-services amazon-sns

0
推荐指数
1
解决办法
56
查看次数